11. Historia |
Wykorzystanie historii na stronie jest jednym z niestety licznych przyk│ad≤w na to, jaka jest rozbie┐no╢µ miΩdzy przegl▒darkami w interpretowaniu skrypt≤w oraz sk│adni HTML. Takie wykorzystanie historii odpowiada w Internet Explorerze klikniΩciu "Wstecz", "Dalej" oraz "Od╢wie┐". Realizuje siΩ to bardzo prosto, za pomoc▒ pojedynczych polece±:
history.back(); /* wstecz */
history.go(0); /* od╢wie┐ */
history.forward(); /* dalej */
Wywo│anie tych funkcji nie powinno Ci ju┐ nastrΩczaµ k│opot≤w, je┐eli przeczyta│e╢ lekcjΩ 8. zdarzenia. CzΩsto u┐ywa siΩ do tego celu element≤w formularza:
<FORM name="formularz1">
<INPUT TYPE="button" VALUE="Wstecz" onClick="history.back()">
<INPUT TYPE="button" VALUE="Od╢wie┐" onClick="history.go(0)">
<INPUT TYPE="button" VALUE="Dalej" onClick="history.forward()">
</FORM>
Co daje efekt nastΩpuj▒cej postaci:
Jednak moim skromnym zdaniem (pewnie nie tylko moim) wygl▒da to ma│o estetycznie, poza tym zawiera du┐o miejsca na stronie (dla webmaster≤w, kt≤rzy je oszczΩdzaj▒ jest to wa┐ne). Zatem mo┐na zrobiµ to samo tylko z obrazkami:
<IMG SRC="str0.gif" onClick="history.back()">
<IMG SRC="refresh.gif" onClick="history.go(0)">
<IMG SRC="str1.gif" onClick="history.forward()">
Co prezentuje siΩ tak:
Jak ju┐ wspomnia│em istniej▒ niezgodno╢ci pomiΩdzy przegl▒darkami w interpretowaniu aplet≤w praz HTML. Tak te┐ powy┐szy zapis nie dzia│a w Netscape Navigator. Jednak Java Script jest jΩzykiem szybko siΩ rozwijaj▒cym, a wiΩc musi byµ elestyczny i oferowaµ kilka rozwi▒za± tego samego problemu i oto:
<A HREF="javascript:history.back()">
<IMG SRC="str0.gif" BORDER=0>
</A>
<A HREF="javascript:history.go(0)">
<IMG SRC="refresh.gif" BORDER=0>
</A>
<A HREF="javascript:history.forward()">
<IMG SRC="str1.gif" BORDER=0>
</A>
Efekt:
Oto polecenia, kt≤re mo┐emy stosowaµ zamiennie:
history.back() <=> history.go(-1)
history.go(0) <=> history.go() (tylko IE) <=> location.reload()
history.forward() <=> history.go(1)
Obiekt history jest opisany r≤wnie┐ w dodatkach.
![]() ![]() ![]() |